// ==UserScript==
// @name         天合ids复制权限
// @namespace    http://tampermonkey.net/
// @version      2024-11-28
// @description  try to take over the world!
// @author       You
// @include      *ids-test.trinapower.com/*
// @match       *://ids-test.trinapower.com/*
// @icon         https://www.google.com/s2/favicons?sz=64&domain=195.190
// @grant        none
// ==/UserScript==

;(function () {
    'use strict'
    console.log('天合ids复制权限脚本==')
    // 消息提示
    function Message(content) {
        const div = $(`<div class="kl-loading-bg">${content}</div>`)

        div.css({
            position: 'fixed',
            left: '50%',
            transform: 'translate(-50%, 0)',
            top: '50px',
            zIndex: '9999',
            cursor: 'pointer',
            background: '#000',
            color: '#fff',
            padding: '10px',
            borderRadius: '5px',
            fontSize: '14px',
            lineHeight: '1',
            textAlign: 'center',
        })
        $('body').append(div)
        console.log(5555)

        setTimeout(() => {
            $('.kl-loading-bg').remove()
        }, 3000)
    }
    // 创建一个script
    var script = document.createElement('script')
    script.src = '//image.zlketang.com/public/news/others/js/jquery-1.11.3.min.js'
    document.body.appendChild(script)

    const emptyStr = `   `
    setTimeout(() => {
        // 只保留几个常用的目录
        $('.el-menu-item').each(function () {
            const arr = ['资源配置', '角色成员管理', '组织成员管理', '角色授权管理']
            // 其下的span的内容
            const span = $(this).find('span')
            const text = span.text()

            if (!arr.includes(text)) {
                $(this).remove()
            }
        })

        // 自动打开上次选中的
        console.log(5555, $('.left-sidebar input[placeholder="请选择"]'))
        const input1 = $('.left-sidebar input[placeholder="请选择"]')
        // 监听值变化
        input1.on('input', function () {
            // 获取选中的值
            // const value = $(this).val()
            // console.log('input1', value,input1)

            // // 手动触发点击事件
            // const clickEvent = new MouseEvent('click', {
            //     view: window,
            //     bubbles: true,
            //     cancelable: true,
            // })
            // input1[0].dispatchEvent(clickEvent)

            // 找到你想要选择的选项
            // setTimeout(() => {
            //     const optionToSelect = document.querySelector(
            //         '.left-sidebar .el-select-dropdown .el-select-dropdown__item',
            //     ) // 根据实际情况选择合适的选项
            //     if (optionToSelect) {
            //         optionToSelect.click()
            //     } else {
            //         console.error('Option not found')
            //     }
            // }, 100) // 确保下拉菜单已经展开
        })

        const div1 = $(`<div>只复制权限字符</div>`)
        div1.css({
            position: 'fixed',
            right: '10px',
            top: '50px',
            zIndex: '9999',
            cursor: 'pointer',
            background: '#000',
            color: '#fff',
            padding: '10px',
            borderRadius: '5px',
            fontSize: '14px',
            lineHeight: '1',
            textAlign: 'center',
        })
        // 绑定点击事件
        div1.on('click', function () {
            // 获取所有input
            const labels = $('.el-form-item__label')
            let str = ''
            for (let i = 0; i < labels.length; i++) {
                const element = labels[i]
                if (element.innerText.trim() === '权限字符') {
                    // 获取其父节点的兄弟节点下的input的值
                    const input = element.parentNode.nextElementSibling.querySelector('input')
                    str += `${input.value}`
                }
            }

            // 复制到剪切板
            navigator.clipboard.writeText(str).then(function () {
                Message(`复制成功===${str}`)
            })
        })

        // 右上角注入复制按钮
        const div = $(`<div>复制按钮名及权限字符</div>`)
        div.css({
            position: 'fixed',
            right: '10px',
            top: '90px',
            zIndex: '9999',
            cursor: 'pointer',
            background: '#000',
            color: '#fff',
            padding: '10px',
            borderRadius: '5px',
            fontSize: '14px',
            lineHeight: '1',
            textAlign: 'center',
        })

        // 绑定点击事件
        div.on('click', function () {
            // 获取所有input
            const labels = $('.el-form-item__label')
            let str = ''
            for (let i = 0; i < labels.length; i++) {
                const element = labels[i]
                if (element.innerText.trim() === '资源名称') {
                    str += `资源名称：`
                    // 获取其父节点的兄弟节点下的input的值
                    const input = element.parentNode.nextElementSibling.querySelector('input')

                    str += `${input.value}${emptyStr}`
                }

                if (element.innerText.trim() === '权限字符') {
                    str += `权限字符：`
                    // 获取其父节点的兄弟节点下的input的值
                    const input = element.parentNode.nextElementSibling.querySelector('input')
                    str += `${input.value}\n`
                }
            }

            // 复制到剪切板
            navigator.clipboard.writeText(str).then(function () {
                Message(`复制成功=========${str}`)
            })
        })

        const div2 = $(`<div>复制路由及权限字符</div>`)
        div2.css({
            position: 'fixed',
            right: '10px',
            top: '130px',
            zIndex: '9999',
            cursor: 'pointer',
            background: '#000',
            color: '#fff',
            padding: '10px',
            borderRadius: '5px',
            fontSize: '14px',
            lineHeight: '1',
            textAlign: 'center',
        })

        // 绑定点击事件
        div2.on('click', function () {
            // 获取所有input
            const labels = $('.el-form-item__label')
            let str = ''

            for (let i = 0; i < labels.length; i++) {
                const element = labels[i]

                if (element.innerText.trim() === '资源名称') {
                    // 获取其父节点的兄弟节点下的input的值
                    const input = element.parentNode.nextElementSibling.querySelector('input')

                    str += `资源名称：${input.value}${emptyStr}`
                }

                if (element.innerText.trim() === '权限字符') {
                    const input = element.parentNode.nextElementSibling.querySelector('input')
                    str += `权限字符：${input.value}${emptyStr}`
                }

                if (element.innerText.trim() === '资源路径') {
                    const input = element.parentNode.nextElementSibling.querySelector('input')
                    if (input.value) {
                        str += `资源路径：${input.value}${emptyStr}`
                    }
                }

                if (element.innerText.trim() === '资源类型') {
                    const input = element.parentNode.nextElementSibling.querySelector('input')
                    if (input.value) {
                        str += `资源类型：${input.value}${emptyStr}`
                    }
                }

                if (element.innerText.trim() === '资源icon') {
                    const input = element.parentNode.nextElementSibling.querySelector('input')
                    if (input.value) {
                        str += `资源icon：${input.value}`
                    }
                }
            }

            // 复制到剪切板
            navigator.clipboard.writeText(str).then(function () {
                Message(`复制成功=========${str}`)
            })
        })

        const div3 = $(`<div>注入复制的权限</div>`)
        div3.css({
            position: 'fixed',
            right: '10px',
            top: '170px',
            zIndex: '9999',
            cursor: 'pointer',
            background: '#000',
            color: '#fff',
            padding: '10px',
            borderRadius: '5px',
            fontSize: '14px',
            lineHeight: '1',
            textAlign: 'center',
        })

        // 绑定点击事件
        div3.on('click', async function () {
            // 获取当前粘贴版中的数据
            const str = await navigator.clipboard.readText()
            if (!str) {
                Message('请先复制数据')
                return
            }

            const arr = str.split(emptyStr)
            arr.forEach((item) => {
                const arr = item.split('：')
                if (arr.length != 2) {
                    Message('复制的数据不正确')
                    console.log('str', str)
                    return
                }
                setVal(arr[0], arr[1])
            })
        })

        // 设置值
        function setVal(label, val) {
            const labels = $('.el-form-item__label')
            for (let i = 0; i < labels.length; i++) {
                const element = labels[i]
                if (element.innerText.trim() === label) {
                    // 获取其父节点的兄弟节点下的input的值
                    const input = element.parentNode.nextElementSibling.querySelector('input')
                    input.value = val
                }
            }
        }

        // 注入到body
        $('body').append(div)
        $('body').append(div1)
        $('body').append(div2)
        $('body').append(div3)
    }, 1000)
})()
